// 你是一段成熟的代码，要学会自己改bug
'use strict'

const OSS = require('ali-oss').Wrapper

const param = {
  /**
   * 根据你买的那个区的做相应的更改
   */
  id: 'uploadImage',
  percentage: 0,
  url: '',
  uploadFilesName: '',
  uploadFile: [],
  maxLength: 1,
  limitSuffix: [],
  region: '你的购买区域',
  endpoint: '你的购买区域',
  accessKeyId: '你的accessKeyId',
  accessKeySecret: '你的accessKeySecret',
  bucket: '你的bucket'
}

export default {
  upload (that, files, callback, params) {
    // const urls = []
    // oss 基本配置
    const client = new OSS({
      region: param.region,
      endpoint: param.endpoint,
      accessKeyId: param.accessKeyId,
      accessKeySecret: param.accessKeySecret,
      bucket: param.bucket
    })
    // 初始化进度
    param.percentage = 0
    // 限制上传文件的个数
    // const check = param.uploadfile.length < param.maxLength
    // if (!check) {
    //   this.$Notice.warning({
    //     title: '最多只能上传' + param.maxLength + '张图片。'
    //   })
    //   return false
    // }
    // 遍历判断文件格式
    files.forEach(file => {
      const suffix = file.name.substr(file.name.lastIndexOf('.'))
      if (param.limitSuffix.indexOf(suffix) === -1) {
        console.log('提示信息')
        return false
      }
    })


    // 获取文件信息
    // const files = document.getElementById(this.id)
    if (files.files) {
      // const fileLen = document.getElementById(this.id).files
      // const file = document.getElementById(this.id).files[0]
      let consat = file.name
      // 限制上传的文件为图片
      if (!(consat.indexOf('.png') > -1 || consat.indexOf('.jpeg') > -1 || consat.indexOf('.jpg') > -1 || consat.indexOf('.gif') > -1)) {
        this.$Notice.warning({
          title: '图片格式不正确',
          desc: '图片' + file.name + ' 格式不正确，请上传对应的格式。'
        })
        return false
      }
      // 限制上传文件的个数
      const check = param.uploadfile.length < param.maxLength
      if (!check) {
        this.$Notice.warning({
          title: '最多只能上传' + param.maxLength + '张图片。'
        })
        return false
      }
      let name = fileLen[0].name
      for (let i = 0; i < fileLen.length; i++) {
        const file = fileLen[i]
        client.put(name, file, {
          progress: function*(percentage, cpt) {
            that.percentage = percentage
          }
        }).then((results) => {
          this.uploadfile.push({
            url: results.res.requestUrls[0],
            fileUrl: results.res.requestUrls[0],
            name: results.name
          })
          this.$Message.success('上传成功')
        }).catch((err) => {
          console.log(err)
        })
      }
    }
    // 将
    this.$emit('getUploadData', this.uploadfile)
  }
}
